package qc.common.core.enums.iot;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * Iot报文数据协议枚举，使用的SL、SZY等国标或行业标准数据规约（报文的解析协议）
 *
 * @author QuCheng Tech
 * @since 2025/10/28
 */
@Getter
@AllArgsConstructor
public enum IotPacketsDataProtocolEnum {
    UN_DEFINE(0, "未定义"),
    /**
     * SL651_Hex，水文HEX，使用如计讯TY511设备
     */
    SL651_HEX(10, "SL651_HEX"),
    /**
     * SL651_Ascii，使用如计讯TY511设备配置为水文Hex、南京斯比特设备
     */
    SL651_ASCII(11, "SL651_ASCII"),
    /**
     * SL 427协议，使用计讯TY511设备也可以配置
     */
    SL_427(20, "SL427"),
    /**
     * 龙江使用的EMS系统发送至水情的机组闸门数据帧协议，基本结构按照Modbus协议
     */
    MODBUS_LJ_EMS(31, "龙江EMS"),
    /**
     * 自定义，德宏水文分局发送至龙江水情系统雨量站数据帧解析类
     */
    CUSTOM_DEHONG_SWJ(91, "德宏水文分局");

    @EnumValue
    private int index;
    private String name;

    @Override
    public String toString() {
        if (this != null)
            return this.name;

        return null;
    }
}
